/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Beans;

import Modelo.Cliente;
import Modelo.DetalleFactura;
import Modelo.Factura;
import Modelo.Producto;
import Modelo.Trabajador;
import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.model.SelectItem;

/**
 *
 * @author HNCR
 */
public class BeanReportes implements Serializable{
    private Trabajador objTrabajador;
    private Producto objProducto;
    private Factura objFactura;
    private Cliente objCliente;
    private DetalleFactura objDetFactura;
    
    private ArrayList<Trabajador> arr_trabajador=null; 
    private ArrayList<Producto> arr_producto=null;
    private ArrayList<Factura> arr_factura=null;
    private ArrayList<DetalleFactura> arr_det_factura=null;
    
    private ArrayList<SelectItem> arr_combo;
    
    private int estadorep=-1;

    private boolean bandreporte1= false;
    private boolean bandreporte2= false;
    private boolean bandreporte3= false;
    private boolean bandreporte4= false;
    private boolean bandreporte5= false;
    private boolean bandreporte6= false;
    private boolean bandreporte7= false;
    private boolean bandreporte8= false;
    private boolean bandreporte9= false;
    private boolean bandreporte10= false;
    
    private boolean bandreportes= true;

    public Trabajador getObjTrabajador() {
        return objTrabajador;
    }

    public void setObjTrabajador(Trabajador objTrabajador) {
        this.objTrabajador = objTrabajador;
    }

    public Producto getObjProducto() {
        return objProducto;
    }

    public void setObjProducto(Producto objProducto) {
        this.objProducto = objProducto;
    }

    public Factura getObjFactura() {
        return objFactura;
    }

    public void setObjFactura(Factura objFactura) {
        this.objFactura = objFactura;
    }

    public Cliente getObjCliente() {
        return objCliente;
    }

    public void setObjCliente(Cliente objCliente) {
        this.objCliente = objCliente;
    }

    public ArrayList<Trabajador> getArr_trabajador() {
        return arr_trabajador;
    }

    public void setArr_trabajador(ArrayList<Trabajador> arr_trabajador) {
        this.arr_trabajador = arr_trabajador;
    }

    public ArrayList<Producto> getArr_producto() {
        return arr_producto;
    }

    public void setArr_producto(ArrayList<Producto> arr_producto) {
        this.arr_producto = arr_producto;
    }

    public ArrayList<Factura> getArr_factura() {
        return arr_factura;
    }

    public void setArr_factura(ArrayList<Factura> arr_factura) {
        this.arr_factura = arr_factura;
    }

    public ArrayList<SelectItem> getArr_combo() {
        return arr_combo;
    }

    public void setArr_combo(ArrayList<SelectItem> arr_combo) {
        this.arr_combo = arr_combo;
    }

    public int getEstadorep() {
        return estadorep;
    }

    public void setEstadorep(int estadorep) {
        this.estadorep = estadorep;
    }

    public boolean isBandreporte1() {
        return bandreporte1;
    }

    public void setBandreporte1(boolean bandreporte1) {
        this.bandreporte1 = bandreporte1;
    }

    public boolean isBandreporte2() {
        return bandreporte2;
    }

    public void setBandreporte2(boolean bandreporte2) {
        this.bandreporte2 = bandreporte2;
    }

    public boolean isBandreporte3() {
        return bandreporte3;
    }

    public void setBandreporte3(boolean bandreporte3) {
        this.bandreporte3 = bandreporte3;
    }

    public boolean isBandreporte4() {
        return bandreporte4;
    }

    public void setBandreporte4(boolean bandreporte4) {
        this.bandreporte4 = bandreporte4;
    }

    public boolean isBandreporte5() {
        return bandreporte5;
    }

    public void setBandreporte5(boolean bandreporte5) {
        this.bandreporte5 = bandreporte5;
    }

    public boolean isBandreporte6() {
        return bandreporte6;
    }

    public void setBandreporte6(boolean bandreporte6) {
        this.bandreporte6 = bandreporte6;
    }

    public boolean isBandreporte7() {
        return bandreporte7;
    }

    public void setBandreporte7(boolean bandreporte7) {
        this.bandreporte7 = bandreporte7;
    }

    public boolean isBandreporte8() {
        return bandreporte8;
    }

    public void setBandreporte8(boolean bandreporte8) {
        this.bandreporte8 = bandreporte8;
    }

    public boolean isBandreporte9() {
        return bandreporte9;
    }

    public void setBandreporte9(boolean bandreporte9) {
        this.bandreporte9 = bandreporte9;
    }

    public boolean isBandreporte10() {
        return bandreporte10;
    }

    public void setBandreporte10(boolean bandreporte10) {
        this.bandreporte10 = bandreporte10;
    }

    public boolean isBandreportes() {
        return bandreportes;
    }

    public void setBandreportes(boolean bandreportes) {
        this.bandreportes = bandreportes;
    }

    public DetalleFactura getObjDetFactura() {
        return objDetFactura;
    }

    public void setObjDetFactura(DetalleFactura objDetFactura) {
        this.objDetFactura = objDetFactura;
    }

    public ArrayList<DetalleFactura> getArr_det_factura() {
        return arr_det_factura;
    }

    public void setArr_det_factura(ArrayList<DetalleFactura> arr_det_factura) {
        this.arr_det_factura = arr_det_factura;
    }
    
    
    //----------inicializaciones-----------------------
     public void doIniciarListadoTrabajador(){        
         arr_trabajador = new ArrayList<Trabajador>();                
    }
    
     public void doIniciarListadoProducto(){        
         arr_producto = new ArrayList<Producto>();                
    }
     
     public void doIniciarListadoFactura(){        
         arr_factura = new ArrayList<Factura>();                
    }
     
     public void doIniciarListadoDetalleFactura(){        
         arr_det_factura = new ArrayList<DetalleFactura>();                
    }
     public void doIniciarListadoCombo(){        
         arr_combo = new ArrayList<SelectItem>();                
    }
     
     public void  doIniciarTrabajador(){
        this.objTrabajador = new Trabajador();
     }
    
     public void  doIniciarProducto(){
        this.objProducto = new Producto();
     }
     
     public void  doIniciarFactura(){
        this.objFactura = new Factura();
     }
     
     public void  doIniciarDetFactura(){
        this.objDetFactura = new DetalleFactura();
     }

    public BeanReportes() {
        
        this.doIniciarDetFactura();
        this.doIniciarFactura();
        this.doIniciarProducto();
        this.doIniciarTrabajador();
        
    }
     //------------activacion de reportes-------------------
    public String doActivarReporte1(){//reporte de facturas atendidas por usuario en una determinada fecha
        this.bandreportes=false;
        this.doIniciarListadoFactura();
        this.bandreporte1=true;
        return null;          
    }
    public String doActivarReporte2(){//reporte de monto recaudado por producto en una fecha
        this.bandreportes=false;
        this.doIniciarListadoDetalleFactura();
        this.bandreporte2=true;
        return null;          
    }
    public String doActivarReporte3(){//reporte de facturas canceladas entre 2 fechas
        this.bandreportes=false;
        this.doIniciarListadoFactura();
        this.bandreporte3=true;
        return null;          
    }    
     public String doActivarReporte4(){//reporte de producto con mayor demanda entre fechas
        this.bandreportes=false;
        this.doIniciarListadoDetalleFactura();
        this.bandreporte4=true;
        return null;          
    }
     public String doActivarReporte5(){//reporte de monto total recaudado en cada mes de un año especifico
        this.bandreportes=false;
        this.doIniciarListadoFactura();
        this.bandreporte5=true;
        return null;          
    }
     public String doActivarReporte6(){//reporte de monto total recuadado entre 'año1' y 'año2'
        this.bandreportes=false;
        this.doIniciarListadoFactura();
        this.bandreporte6=true;
        return null;          
    }
     public String doActivarReporte7(){//reporte de facturas anuladas por año por vendedor
        this.bandreportes=false;
        this.doIniciarListadoFactura();
        this.bandreporte7=true;
        return null;          
    }
     public String doActivarReporte8(){//reporte de consumo mas alto por mes de un año
        this.bandreportes=false;
        this.doIniciarListadoFactura();
        this.bandreporte8=true;
        return null;          
    }
     public String doActivarReporte9(){//reporte de monto total por mes entre dos años
        this.bandreportes=false;
        this.doIniciarListadoFactura();
        this.bandreporte9=true;
        return null;          
    }
     public String doActivarReporte10(){//reporte de producto mas solicitado por mes en un año
        this.bandreportes=false;
        this.doIniciarListadoDetalleFactura();
        this.bandreporte10=true;
        return null;          
    }
     //-------------------------tamaño de los reportes----------------------
    public String getSizeRegistrosReporteFacturas() {
        if(this.arr_factura==null){
            return "0";
        }            
        else{return "" + this.arr_factura.size();}             
    }
     public String getSizeRegistrosReporteDetalleFactura() {
        if(this.arr_det_factura==null){
            return "0";
        }            
        else{return "" + this.arr_det_factura.size();}             
    }
    //--------------------listar el reporte nro 01-------------------------
    public ArrayList<Factura> doListarReporte1(){         
        this.arr_factura=Factura.getListarResporte1(this.objFactura);
        return this.arr_factura;
    }
    public ArrayList<DetalleFactura> doListarReporte2(){         
        this.arr_det_factura=DetalleFactura.getListarResporte2(this.objDetFactura);
        return this.arr_det_factura;
    }
    public ArrayList<Factura> doListarReporte3(){         
        this.arr_factura=Factura.getListarResporte3(this.objFactura);
        return this.arr_factura;
    }
    public ArrayList<DetalleFactura> doListarReporte4(){         
        this.arr_det_factura=DetalleFactura.getListarResporte4(this.objDetFactura);
        return this.arr_det_factura;
    }
    public ArrayList<Factura> doListarReporte5(){         
        this.arr_factura=Factura.getListarResporte5(this.objFactura);
        return this.arr_factura;
    }
    public ArrayList<Factura> doListarReporte6(){         
        this.arr_factura=Factura.getListarResporte6(this.objFactura);
        return this.arr_factura;
    }
    public ArrayList<Factura> doListarReporte7(){         
        this.arr_factura=Factura.getListarResporte7(this.objFactura);
        return this.arr_factura;
    }
    public ArrayList<Factura> doListarReporte8(){         
        this.arr_factura=Factura.getListarResporte8(this.objFactura);
        return this.arr_factura;
    }
    public ArrayList<Factura> doListarReporte9(){         
        this.arr_factura=Factura.getListarResporte9(this.objFactura);
        return this.arr_factura;
    }
    public ArrayList<DetalleFactura> doListarReporte10(){         
        this.arr_det_factura=DetalleFactura.getListarResporte10(this.objDetFactura);
        return this.arr_det_factura;
    }
    //------------------Resgreso-----------------------------
    public String doRegresar(){     
        this.doIniciarListadoDetalleFactura();    
        this.doIniciarListadoFactura();
        this.doIniciarListadoProducto();
        this.doIniciarListadoTrabajador();
        this.doIniciarDetFactura();
        this.doIniciarFactura();
        this.doIniciarProducto();
        this.doIniciarTrabajador();
        this.doIniciarListadoCombo();
        this.bandreportes=true;
        this.bandreporte1=false;
        this.bandreporte2=false;
        this.bandreporte3=false;
        this.bandreporte4=false;
        this.bandreporte5=false;
        this.bandreporte6=false;
        this.bandreporte7=false;
        this.bandreporte8=false;
        this.bandreporte9=false;
        this.bandreporte10=false;
        
        return null;         
    }
    
    //----------------lismpiar reportes---------------
    public String doLimpiarReporte1(){     
        this.doIniciarListadoFactura();
        this.doIniciarFactura();
        return null;         
    }
    public String doLimpiarReporte2(){     
        this.doIniciarListadoDetalleFactura();
        this.doIniciarDetFactura();
        return null;         
    }
     public String doLimpiarReporte3(){     
        this.doIniciarListadoFactura();
        this.doIniciarFactura();
        return null;         
    }
    public String doLimpiarReporte4(){     
        this.doIniciarListadoDetalleFactura();
        this.doIniciarDetFactura();
        return null;         
    }
    public String doLimpiarReporte5(){     
        this.doIniciarListadoFactura();
        this.doIniciarFactura();
        return null;         
    }
    public String doLimpiarReporte6(){     
        this.doIniciarListadoFactura();
        this.doIniciarFactura();
        return null;         
    }
    public String doLimpiarReporte7(){     
        this.doIniciarListadoFactura();
        this.doIniciarFactura();
        return null;         
    }
    public String doLimpiarReporte8(){     
        this.doIniciarListadoFactura();
        this.doIniciarFactura();
        return null;         
    }
    public String doLimpiarReporte9(){     
        this.doIniciarListadoFactura();
        this.doIniciarFactura();
        return null;         
    }
    public String doLimpiarReporte10(){     
        this.doIniciarListadoDetalleFactura();
        this.doIniciarDetFactura();
        return null;         
    }
}
